<?

//Initiate Authenticate
SecurityRedirect ();

//initiate Vars 
define("PRIMARY_KEY","nobkt");
$KEY[]         = array("PRIMARY_KEY"=>PRIMARY_KEY);
$FileName      = "ais_approval_cash_out.php";
$FileTemplate  = "ais_approval_cash_out_list.html";
$TableName     = "ais_memorial_z";
$SubHeaderTitle= "Approval Cash/Bank - Payment";
$PageSize      = 20 ;
$HTMLFormName   = "MemorialTransForm";
$HTMLGridList  = "CashBankGrid";
//************ FORM ACTION **************
	if (GetParam("Action","")=="Delete") {
		DeleteRecord ("txtCheck",$PageSize);
	}
	elseif (GetParam("Action","")=="Approval") {
		ApprovalRecord ("txtCheck",$PageSize);
	}

//Initiate Database Table For Search;
$FCode = GetParam("transNoSearch","");
$RCode = GetParam("transNoRef","");
$Ftglbkt = GetParam("tglbkt","");
$PreserveGet = GetQueryString("All", array("PageNum"));

//******* DATABASE FORM QUERY ***********
$SQL = "SELECT * FROM `$TableName` ";
$SQLCount = "SELECT count(*) FROM `$TableName` ";
$WHERE  = "ktrasl='".GetOfficeID()."' ";

$WHERE  .= " AND (nobkt like 'ZBK%' OR nobkt like 'ZBB%')";
$WHERE  .= " AND app2=1";
$WHERE  .= " AND urut like '999' AND ".QueryLedger();

//Retrieve Parameter from search

if ($FCode) {
	$CustomWhere = " nobkt like '".$FCode."%'";
	if (strlen($WHERE)) $WHERE .= " AND ".$CustomWhere;
	else $WHERE = $CustomWhere;	
}

if ($RCode) {
	$CustomWhere = " noref like '".$RCode."%'";
	if (strlen($WHERE)) $WHERE .= " AND ".$CustomWhere;
	else $WHERE = $CustomWhere;	
}

if ($Ftglbkt) {
	list($day,$month,$year) = explode("/",GetParam("tglbkt",""));
	$Ftglbkt2   = date('Y-m-d',mktime(0,0,0,$month,$day,$year));
	$CustomWhere = " tglbkt = '".$Ftglbkt2."'";
	if (strlen($WHERE)) $WHERE .= " AND ".$CustomWhere;
	else $WHERE = $CustomWhere;	
//die($WHERE);
}


if (strlen($WHERE)) {
	$SQL = $SQL."WHERE ".$WHERE;
	$SQLCount .= "WHERE ".$WHERE;
}
else $SQL = $SQL;


$SQL  .= " ORDER BY memorial_id DESC ";



//Select Customer 
//$SQLDept = "SELECT * FROM tbldept";

//******* SHOW FORM CONTENT *********
$PageNum = 1;
/*
$RecCnt = $DBConnection->dbc->get_var($SQLCount) ; 
*/

if (GetParam("PageNum","")) $PageNum  = GetParam("PageNum","");

//Default value
if (!isset($_GET)) $_GET=&$HTTP_GET_VARS ;
if (isset($_GET['PageNum'])) {
  $PageNum = $_GET['PageNum'] ;
} else {
    $PageNum = 1 ;
}

//Default value
if (isset($_GET['RecCnt'])) {
  $RecCnt = intval($_GET['RecCnt']) ;
} else {
    $RecCnt = -1 ;
} 

$TBS = new clsTinyButStrong ;
$TBS->LoadTemplate($MOD_TEMPLATE_DIR."/".$FileTemplate);
$TBS->MergeBlock("bln",$KEY);
//print $SQL;
$RecCnt = $TBS->MergeBlock("blg",$DBMysql,$SQL,$PageSize,$PageNum,$RecCnt);
$TBS->MergeNavigationBar('nv',array('size'=>10,'pos'=>'centred'),$PageNum,$RecCnt,$PageSize) ; 
$TBS->Show();


function DeleteRecord ($sequence_name,$PageSize) {
	global $DBConnection,$FileName,$TableName;
        if (GetParam("PageNum","")) {
          $StartRecord = GetParam("PageNum","")*$PageSize-$PageSize+1;
          $EndRecord   = $StartRecord+$PageSize-1;          
        } 
	for ($x=$StartRecord;$x<=$EndRecord;$x++) {
		if (GetParam($sequence_name.$x,""))	{
                        $SQL = "SELECT noref FROM $TableName WHERE nobkt='".GetParam($sequence_name.$x,"")."'";
                        $RefNo = $DBConnection->dbc->get_var($SQL);
                        if (ereg("BS",$RefNo)) {
                            $SQL = "UPDATE ais_advance SET aslref='' WHERE nobkt='$RefNo'";
                            $DBConnection->dbc->query($SQL);
                        }
			$DBConnection->Delete("$TableName",$sequence_name.$x);
                }
	}
	header("Location: $FileName");
	exit;	
	
}

function ApprovalRecord ($sequence_name,$PageSize) {
	global $DBConnection,$FileName,$TableName;
        if (GetParam("PageNum","")) {
          $StartRecord = GetParam("PageNum","")*$PageSize-$PageSize+1;
          $EndRecord   = $StartRecord+$PageSize-1;
          
        } 
	for ($x=$StartRecord;$x<=$EndRecord;$x++) {
		if (GetParam($sequence_name.$x,""))	{
			SetTransApproval(GetParam("Type",""),GetParam($sequence_name.$x,""));
			//$DBConnection->Delete("$TableName",$sequence_name.$x);
	    }
	}
	header("Location: $FileName");
	exit;	
	
}

function SetTransApproval($appr_level,$nobkt) {
	global $DBConnection;
	if (!(ereg("TB",$nobkt) || ereg("TK",$nobkt) || ereg("BB",$nobkt) || ereg("BK",$nobkt))) return;
	if ($appr_level=="Approval1") {
		CheckAndUpdateAppr("Approval1",$nobkt);
		SetLogActivity($nobkt,"Approval1","");
	}elseif ($appr_level=="Approval2") {
		//CheckAndUpdateAppr("Approval1",$nobkt);
		//CheckAndUpdateAppr("Approval2",$nobkt);
		MoveRecord($nobkt);
		SetLogActivity($nobkt,"Approval2","");
	}else {
		CheckAndUpdateAppr("Approval1",$nobkt);
		CheckAndUpdateAppr("Approval2",$nobkt);
		CheckAndUpdateAppr("Approval3",$nobkt);


	}
}

function GetTransDate($nobkt) {
  global $DBConnection;
  $SQL = "SELECT date_format(tglbkt,'%d/%m/%Y') FROM ais_memorial_z WHERE nobkt='$nobkt' ";
  return $DBConnection->dbc->get_var($SQL);
}


function MoveRecord($nobkt) {
		global $DBConnection;
		//Set Number on tblnumbering		
		ereg("TB|TK|BB|BK",$nobkt,$Mod);
		if (($Mod[0]=="TB")||($Mod[0]=="BB")) {
			$GetCode = $DBConnection->dbc->get_var("SELECT kdbank FROM ais_memorial_z WHERE nobkt='$nobkt'");
		}elseif (($Mod[0]=="TK")||($Mod[0]=="BK")) {
			$GetCode = $DBConnection->dbc->get_var("SELECT kdcash FROM ais_memorial_z WHERE nobkt='$nobkt'");
		}

    $JumlahToBalance = $DBConnection->dbc->get_var("SELECT jumlah FROM ais_memorial_z WHERE nobkt='$nobkt' AND urut=999");
		$CurrentDate = GetTransDate($nobkt);
		if (strlen($GetCode))
		$ObjNumber  = new autonumber($CurrentDate,$GetCode);
		else 
		$ObjNumber  = new autonumber($CurrentDate);
		$TransNo = $ObjNumber->GetNumber($Mod[0]);



		//$Ledger = GetPeriod($CurrentDate);
		$SytemDate   = date("Y-m-d");

		//Update Number on ais_memorial_z
		$SQL = "UPDATE ais_memorial_z SET nobkt='$TransNo' WHERE nobkt='$nobkt'";
		$DBConnection->dbc->query($SQL);
                //Update Number on ais_hutang_z
/*                
		$SQL = "UPDATE ais_hutang_z SET nobkt='$TransNo' WHERE nobkt='$nobkt'";
		$DBConnection->dbc->query($SQL);
*/
		//Migrate data from ais_memorial_z to ais_memorial
		$SQL = "INSERT INTO ais_memorial (".GetColumnStruct("ais_memorial", "memorial_id").") SELECT ".GetColumnStruct("ais_memorial", "memorial_id")." FROM ais_memorial_z WHERE nobkt='$TransNo'";
		$DBConnection->dbc->query($SQL);		
/*                
		$SQL = "INSERT INTO ais_hutang SELECT * FROM ais_hutang_z WHERE nobkt='$TransNo'";
		$DBConnection->dbc->query($SQL);		
*/
		SaveAging ($TransNo,1);
		
		//Delete ais_memorial_z
		$SQL = "DELETE FROM ais_memorial_z WHERE nobkt='$TransNo'";
		$DBConnection->dbc->query($SQL);
/*
		$SQL = "DELETE FROM ais_hutang_z WHERE nobkt='$TransNo'";
		$DBConnection->dbc->query($SQL);
*/
                //Update Bank Or Cash
                if ($Mod[0]=="BB") {
                  $SQL = "UPDATE tblbank SET balance=balance-$JumlahToBalance WHERE kdbank='".$GetCode."'" ;
                } elseif ($Mod[0]=="BK") {
                  $SQL = "UPDATE tblcash SET balance=balance-$JumlahToBalance WHERE kdcash='".$GetCode."'" ;
                }
                $DBConnection->dbc->query($SQL);

                //Update History Transaction
                $SQL = "SELECT * FROM ais_memorial WHERE nobkt='$TransNo' AND urut=999";
                $MyResult = $DBConnection->dbc->get_row($SQL);

                if ($MyResult) {
                    if (ereg("BS",$MyResult->noref)) {
                        $SQL = "UPDATE ais_advance SET aslref='".$TransNo."' WHERE nobkt='".$MyResult->noref."'";
                        $DBConnection->dbc->query($SQL);
                    }
                /*
                  $SQL = "UPDATE ais_memorial_history SET memo_jour='".$MyResult->nobkt."', jml_memo='".$MyResult->jumlah."' WHERE memoesti='".$MyResult->aslref."' AND ktrasl='".GetOfficeID()."'";
                  $DBConnection->dbc->query($SQL);
                  $DBConnection->dbc->debug();
                  */
                }

}


function CheckAndUpdateAppr($appr_level,$nobkt){
	global $DBConnection,$FileName,$TableName;	
	if ($appr_level=="Approval1") {
		$SQL = "SELECT app1 FROM ais_memorial_z WHERE nobkt='$nobkt'";
		$ApprStat = $DBConnection->dbc->get_var($SQL);
		if ($ApprStat<>'1') 
			$SQL = "UPDATE ais_memorial_z SET app1='1', nmapp1='".GetStaffName()."' WHERE nobkt = '$nobkt'";
		else return false;

	} elseif ($appr_level=="Approval2") {
		$SQL = "SELECT app2 FROM ais_memorial_z WHERE nobkt='$nobkt'";
		$ApprStat = $DBConnection->dbc->get_var($SQL);
		if ($ApprStat<>'1') 
			$SQL = "UPDATE ais_memorial_z SET app2='1', nmapp2='".GetStaffName()."' WHERE nobkt = '$nobkt'";
		else return false;
	} else {
		$SQL = "SELECT app3 FROM ais_memorial_z WHERE nobkt='$nobkt'";
		$ApprStat = $DBConnection->dbc->get_var($SQL);
		if ($ApprStat<>'1') 
			$SQL = "UPDATE ais_memorial_z SET app3='1', nmapp3='".GetStaffName()."' WHERE nobkt = '$nobkt'";
		else return false;
	}
	$DBConnection->dbc->query($SQL);
}


?>
